﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using Infinity.Expressions.Extension;

namespace Infinity.Expressions.Commands
{
	/// <summary>
	/// Expression típusú utasítások végrehajtását szolgáló utasítás
	/// </summary>
	public class ExpressionCommand : Command<Expression>
	{
		public ExpressionCommand(Expression exp = null)
			: base(exp)
		{

		}

		public override void Run()
		{
			if (Body != null)
			{
				Body.CompileExpression<Action>()();
			}
		}

		protected override Expression BodyExpression
		{
			get
			{
				return Body;
			}
		}
	}
}
